#include <cstdio>
#include <algorithm>
#define $( head, x, end ) printf("%s%s:%d%s", head, #x, x, end)

using namespace std;

int main(int argc, char const *argv[])
{
    int t, m, times[128], values[128], bags[1024] = { 0 };
    int i, j, k;
    scanf("%d%d", &t, &m);
    for (i = 0; i < m; i++)
    {
        scanf("%d%d", &times[i], &values[i]);
    }
    for (i = 0; i < m; i++)
    {
        // 这里循环时要从后往前，每一次都要用上一轮的结果
        // 如果从前往后用的时候就变成这一轮的结果了
        for (j = t; j >= times[i]; j--)
        {
            // 这一轮的结果等于选择不拿（bags[j]）或者选择拿（values[i] + bags[j - times[i]]）
            // 各得到的结果的最大值
            bags[j] = max(bags[j], values[i] + bags[j - times[i]]);
        }
    }
    printf("%d", bags[t]);
    return 0;
}
